package com.game.ball;

import java.awt.*;

/**
 * 代表游戏中的砖块。
 * <p>
 * 这个类负责管理砖块的位置、可见性和绘制。
 */
public class Brick {
    private final int x, y;
    private final int width, height;
    private boolean isVisible;

    /**
     * 构造一个新的砖块对象。
     *
     * @param x      砖块的初始 X 坐标
     * @param y      砖块的初始 Y 坐标
     * @param width  砖块的宽度
     * @param height 砖块的高度
     */
    public Brick(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
        this.isVisible = true;
    }

    /**
     * 绘制砖块。
     * <p>
     * 如果砖块是可见的，则绘制它。
     *
     * @param g 用于绘制的 Graphics 对象
     */
    public void draw(Graphics g) {
        if (isVisible) {
            g.setColor(Color.RED);
            g.fillRect(x, y, width, height);
        }
    }

    /**
     * 获取砖块的边界矩形。
     *
     * @return 砖块的边界矩形
     */
    public Rectangle getBounds() {
        return new Rectangle(x, y, width, height);
    }

    /**
     * 设置砖块的可见性。
     *
     * @param visible 新的可见性状态
     */
    public void setVisible(boolean visible) {
        this.isVisible = visible;
    }

    /**
     * 获取砖块的可见性。
     *
     * @return 砖块是否可见
     */
    public boolean isVisible() {
        return isVisible;
    }
}